package com.iwuyc.tools.commons.concurrency;

import java.util.concurrent.TimeUnit;

public interface ConcurrencyService {
    /**
     * 提交任务，如果在指定的时间内，并发数已满，无法添加到队列中，则会返回false，表示该任务未能正确提交执行队列
     *
     * @param runnable    业务逻辑
     * @param timeout     超时时间
     * @param timeoutUnit 超时时间的单位
     * @return 如果成功提交，则返回true
     */
    boolean submit(Runnable runnable, long timeout, TimeUnit timeoutUnit);

    /**
     * 设置并发数
     *
     * @param concurrency 并发数
     * @return 是否设置成功，成功则返回true，否则返回false
     */
    boolean concurrency(int concurrency);
}
